Hi,
vielen Dank für Eure Unterstützung. Das Speicherleck wäre mir für eine längere Zeit, wenn überhaupt, gar nicht erst, aufgefallen. Ich habe noch eine Variante ausprobiert:
Code:
#include <stdio.h>
#include <stdlib.h>
void mymalloc(int *data,int rows){
data = malloc(rows*sizeof(*data));
}
void myrealloc(int *data,int rows){
data = realloc(data,rows*sizeof(*data));
}
void myrealloc2(int **data,int rows){
*data = realloc(*data,rows*sizeof(**data));
}
int main()
{
int *a;
printf("&a=%p, a=%p\n",&a,a);
a = malloc(sizeof(int));
// mymalloc(a, 1);
printf("&a=%p, a=%p\n",&a,a);
myrealloc(a, 6);
printf("&a=%p, a=%p\n",&a,a);
int *b;
b = malloc(sizeof(int));
myrealloc2(&b, 6);
int i;
for(i = 0; i < 6; i++){
a[i] = 1;
b[i] = 1;
}
for(i = 0; i < 6; i++){
printf("%d\n",b[i]);
}
printf("\n");
free(a);
free(b);
return 0;
}
Was zeigen würde, das ein Doppelpointer gar nicht erst benötigt wird.
Vielen Dank!
Lesezeichen