gpt4 book ai didi

c - 未初始化的值是由堆分配创建的。为什么?

转载 作者:行者123 更新时间:2023-11-30 15:08:45 24 4
gpt4 key购买 nike

在我的代码上运行 Valgrind 后出现错误:

uninitialized value was created by a heap allocation. 

我的代码:

void adicionaHashtag(char* x){
char*y=malloc(sizeof(x));/***ERROR IS HERE***/
int i;
for(i=0; i<strlen(x); i++){
y[i]=tolower(x[i]);
}

Lista_Hashtags*aux = (Lista_Hashtags*)malloc(sizeof(Lista_Hashtags));
strcpy(aux->nome, y);
aux->contador=1;
if(contador_unitario == 0){
ultimo = aux;
}
contador_unitario++;
aux->proximo = primeiro;
primeiro = aux;
}

有什么建议吗?

另外,“条件跳转或移动取决于未初始化的值”是什么意思?〜

最佳答案

“未初始化的值...”您可以使用char*y=calloc(strlen(x),0);而不是char*y=malloc(sizeof(x)); .将内存初始化为“0”。

关于c - 未初始化的值是由堆分配创建的。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169442/

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