Δημοσιεύτηκε: 23 Μαρ 2012, 20:29
από Ilias95
Μια ακόμα απορία.

Έχω το παρακάτω sample:
Μορφοποιημένος Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void)
{
char *x[] = {"abc", "def", "ghi"}, **p;
p = &x[1];
printf("%s\n", *p);

//char y[][10] = {"abc", "def", "ghi"}, *z;
//z = &y[1][0]; // ή char **z; και z = &y[1];
//printf("%s\n", *z);

return 0;
}

Αυτό που θέλω να κάνω είναι να εκτυπώσω το 2ο στοιχείο της κάθε array χρησιμοποιώντας pointer.
Στην πρώτη περίπτωση παίρνω το επιθυμητό αποτέλεσμα. Στην δεύτερη (αυτή με τα σχόλια) Segmentation fault.

Δεν νομίζω να έχει να κάνει με αυτό που λέγαμε χθες για read-only περιοχές μνήμης γιατί δεν προσπαθώ να τροποποιήσω κάτι.
Πως θα γραφτεί σωστά η δεύτερη περίπτωση;