gpt4 book ai didi

c - 我的程序出了什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:53 26 4
gpt4 key购买 nike

该程序应该比较字符串并将它们按字母顺序排列,但最后的 printf 语句打印出垃圾...我哪里出错了?
我使用了一个指向字符串的指针数组并在开始时声明了它们,我什至尝试过使用 temp 作为数组而不是指针,但仍然不太有效

    #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int j;
int i;
char *temp;
char *string[5] = {"ibrahim","laura","peter","degea"};
for ( i = 0; i< 4;i++)
printf("%s\n", string[i]); //allocating memory
for( i = 0; i< 10 ;i++)
string[i] = (char*)malloc (30 * sizeof(char));
temp = (char*)malloc(30*sizeof(char));
for ( i=0; i< 3; i++)
for(j =i+1; j<4; j++)
{
if(strcmp(string[i], string[j]) > 0)
{
strcpy(temp, string[i]);
strcpy(string[i], string[j]);
strcpy(string[j], temp);

}
}
for (i = 0; i< 4; i++)
{
printf("%s\n",string[i]);
puts("\n");
}
free(string);
free(temp);
return 0;
}

最佳答案

string[i] = (char*)malloc (30 * sizeof(char));

这将覆盖现有的初始化值。

编辑

for( i = 0; i< 10 ;i++)

temp = (char*)malloc(30*sizeof(char));

什么?您在单个指针上分配内存超过 10 次?

编辑 2:

原始帖子丢失(阅读已编辑)。当您阅读此答案时,Jonathan Leffler 先生和这张海报可能看起来像这个世界上的傻瓜。

关于c - 我的程序出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20944868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com