求帮字符串找错误,C语言

求帮忙找错误,刚学数据结构,C语言版
求帮忙找错误,刚学数据结构,C语言版
求帮忙找错误,刚学数据结构,C语言版

img

初始化就错了
init(string L)
这里L不是引用的话,给L分配内存,是无法作用到调用者的。

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

这段代码存在以下问题:

  1. strlen函数需要头文件<string.h>,需要添加头文件。
  2. char *p = (char *)malloc(sizeof(char))只分配了一个字节的空间,应该根据需要分配更多的空间。
  3. scanf("%s",p)中没有指定输入字符串的长度,容易出现缓冲区溢出问题,可以使用fgets函数代替。
  4. free(p)应该在使用完p后进行释放。

修改后的代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char *p = (char *)malloc(sizeof(char) * 100); // 分配100字节的空间
    if (p == NULL) { // 分配失败
        printf("Failed to allocate memory");
        return 0;
    }
    printf("Please enter a string: ");
    fgets(p, 100, stdin); // 限制输入长度为100字符
    printf("The length of the string is: %d\n", strlen(p));
    free(p); // 释放空间
    return 0;
}