我正在使用从arg收到的字符串来返回另一个字符串,其中包含洗牌后的字符。
int size = strlen(argv[4]);
char* res = malloc(size+1);
然后res填充了argv [4]的字符,但是当我在控制台中输入'test'时,它会返回'Test?' (当我没有洗牌时,只是逐字符地复制字符串)。
为什么?
如果我把尺寸+ 100改为,它可以工作,但我不明白为什么。
答案 0 :(得分:-2)
那是因为你没有考虑char的大小。这应该可以解决问题:
char* res = (char*)malloc((size+1)*sizeof(char))