右移数组,在C中分配(中止陷阱:6)
我的代码有问题。我想在第一个位置将一个字符“\u1”弹出到一个完整数组中。我写了这个,但终端显示了一个中止陷阱:6。你能帮我吗右移数组,在C中分配(中止陷阱:6),c,arrays,macos,memory,char,C,Arrays,Macos,Memory,Char,我的代码有问题。我想在第一个位置将一个字符“\u1”弹出到一个完整数组中。我写了这个,但终端显示了一个中止陷阱:6。你能帮我吗 //this code was deleted cause i had good answer! Sorry but is a school project and i couldn't post anything ! 我不知道我使用mac OSX是否重要,因为您使用的strcat功能是错误的。第一个参数是目标,因为您传递的是字符串文字,所以它是未定义的行为 strc
//this code was deleted cause i had good answer! Sorry but is a school project and i couldn't post anything !
我不知道我使用mac OSX是否重要,因为您使用的strcat功能是错误的。第一个参数是目标,因为您传递的是字符串文字,所以它是未定义的行为
strcpy(dupstr, "_");
strcat(dupstr, temp);
应该这样做。您使用的strcat功能错误。第一个参数是目标,因为您传递的是字符串文字,所以它是未定义的行为
strcpy(dupstr, "_");
strcat(dupstr, temp);
应该可以。我给你一个地方看看。长度为6的字符串需要存储7个字节,而不是6个字节。结尾有一个空字符,由您来为它提供空间。是的,很抱歉我用错误的方式写了字符串。我在数组中输入了“Hello”而不是“Hello!”,但中止陷阱仍然存在!:(
strcat(“25;”,temp);
是未定义的行为。不要强制转换malloc()
。使用“gdb”调试工具,以准确了解导致SEG错误的语句。我将给您一个位置查看。长度为6的字符串需要存储7个字节,而不是6个字节。末尾有一个空字符,您可以为其提供空间。是的,很抱歉,我以错误的方式写入了字符串。我放入了数组“Hello”而不是“Hello!”,但中止陷阱仍然存在!:(strcat(“25;”,temp);
是未定义的行为。不要强制转换malloc()
。使用“gdb”调试工具准确地知道导致SEG故障的语句