は、私はこの小さな機能を作ったが、それの小さなは、このcondtionalジャンプここC - 条件ジャンプ(valgrindの)私はvalgrindのとcondtionalジャンプを理解していない
がある場合でも機能です:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char *function(char *str)
{
int i = 0;
int a = 0;
char *cpy;
cpy = malloc(100);
while (str[i] != '\0')
{
if (str[i] == 'a')
cpy[a++] = 'b';
i++;
}
return (cpy);
}
int main(int ac, char **av)
{
char *str;
str = function(av[1]);
printf("%s\n", str);
}
私はそれは私に1つのエラー
==3397== Conditional jump or move depends on uninitialised value(s)
==3397== at 0x4C2E4E8: strlen (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==3397== by 0x4EA1531: puts (in /lib64/libc-2.24.so)
==3397== by 0x400609: main (in /home/benoit.pingris/train/a.out)
を与えるこの
valgrind ./a.out "aa aa aaaaaaaaaaa"
ようvalgrindのを使用しています
どういう意味ですか?おかげさまで
"私は自分の変数を初期化しなかったために見つかった" - 実際にあなたの質問は何ですか?あなたはすでにその理由を見つけたようだ。 – taskinoor
私はこのエラーを理解していませんvalgrind – Beben
[MCVE]を示してください。 –