私のコード上での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;
}
任意のヒントは?
「条件付きジャンプまたは移動は初期化されていない値に依存する」とはどういう意味ですか? 〜
のsizeof 'の使用(X)'が間違っています。 'strlen(x)+ 1'に等しいメモリを' y'に割り当てます。 – ameyCU
また、 '\ 0'を' y'に追加することを忘れないでください。そうしないと 'strcpy'に問題があります。 –
「noob」の質問は事前にお詫び申し上げます。どのようにexally yに\ 0を追加する必要がありますか? strcpyは本当に問題を起こしています。 @ジョニー・モップ –