-1

我正在使用从 arg 接收到的字符串来返回另一个带有随机字符的字符串。

int size = strlen(argv[4]);
char* res = malloc(size+1);

然后 res 填充了 argv[4] 的字符,但是当我在控制台中输入 'test' 时,它返回 'Test?' (当我不改组字母而只是逐个字符地复制字符串时)。

这是为什么 ?

如果我把 size+100 改为,它可以工作,但我不明白为什么。

4

1 回答 1

-2

那是因为您没有考虑 char 的大小。这应该可以解决问题:

char* res = (char*)malloc((size+1)*sizeof(char))
于 2013-09-30T21:10:08.770 回答