Добрый день! Это мой первый пост здесь!Отладка с valgrind и gdb
У меня ошибка с ошибкой, когда я использую valgrind, но когда я могу это понять, когда использую gdb!
#include <stdio.h>
#include <stdlib.h>
#define MAX_INDEX 2
void *z_m = 0;
struct block {
struct block * suiv;
};
//Declaration of a global array
struct block * tzl[MAX_INDEX+1];
//Function used to dislay tzl in the main.
void display() {
for(int i=0; i<=MAX_INDEX; i++) {
struct bloc * tmp = tzl[i];
printf("%d => ",i);
while (tmp!=NULL) {
printf(" %li ->",(unsigned long)tmp);
tmp = tmp -> suiv;
}
printf("\n");
}
}
int main() {
z_m = (void *) malloc(1<<MAX_INDEX);
for (int i=0; i<MAX_INDEX; i++)
{
tzl[i] = NULL;
}
tzl[MAX_INDEX] = z_m;
//Here is the problem with valgrind
tzl[MAX_INDEX] -> suiv = NULL;
display();
free(z_m);
return 0;
}
В чем проблема? Спасибо, что ответили.
Не могли бы вы объяснить (или перефразировать) утверждение «но когда я могу это понять, когда я использую gdb»? –
BTW, ваши символы (функции и переменные) являются практически нечитаемыми (по крайней мере, для обычного читателя на английском языке, который, как ожидается, будет размещен здесь). –
Извините! Я попытался добавить некоторые комментарии. Когда я использую gdb, процесс заканчивается нормально, что для меня странно, учитывая ошибку в valgrind! –