l'allocation dynamique de tableau de pointeurs

Le code suivant donne une erreur de segmentation. Je ne suis pas en mesure de comprendre pourquoi. Veuillez voir..

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int **ptr;
    int *val;
    int x = 7;
    val = &x;
    *ptr = (int *)malloc(10 * sizeof (*val));
    *ptr[0] = *val;
    printf("%d\n", *ptr[0] );

    return 0;
}

sur le débogage à l'aide de gdb, il dit:

Program received signal SIGSEGV, Segmentation fault.

0x0804843f in main () at temp.c:10

*ptr = (int *)malloc(10 * sizeof (*val));

Toute aide concernant la question est apprécié.

En gros, je veux allouer dynamiquement un tableau de pointeurs.
Pour moi, pas seg - fautes !!!!
Vous ne pouvez pas faire *ptr jusqu'à ce que vous avez donné pour la première fois ptr une valeur. C'est pourquoi il segmentation.
*ptr = (int *)malloc(10 * sizeof (*val)); est juste affectation de 10*intsize. Ne sais pas ce que vous essayez de faire
Je reçois dans ma tête quand j'ai lu le code. Il fait mal. Si vous n'obtenez pas un, alors vous êtes juste de la chance.

OriginalL'auteur Vivek Sethi | 2012-09-25