Deklaracja wskaznika do tablicy wskazników

0

Musze zadeklarować wskaznik pozwalający stworzyć tablice wskazników

Czy o to chodzi?
Jesli nie to jak to napisać

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

int main(){

	int *tab;
	tab = (int*) malloc(20*sizeof(int*));
	int sum = 0;

	for(int i = 0; i < 20; i++){
		scanf("%d", tab+i);
		sum+=*(tab+i);
	}
	printf("%d\n", sum);

	return 0;
}
1
int **tab = (int**) malloc(20 * sizeof(int*));
0

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

int main(){

int **tab = (int**) malloc(20*sizeof(int*));
int sum = 0;

for(int i = 0; i < 7; i++)
{
    tab[i]= (int*) malloc(1*sizeof(int*));
}
for(int i = 0; i < 7; i++){
	scanf("%d", tab[i]);
	sum+=*tab[i];
}
printf("%d\n", sum);

return 0;

}
Jakieś zastrzezenia?

0
for(int i = 0; i < 7; i++)
{
    tab[i]= (int*) malloc(1 * sizeof(int));
}

for(int i = 0; i < 7; i++)
{
    scanf("%i", tab[i]);
    sum+= tab[i];
}

Jakieś zastrzezenia?

Do tego, co ten program robi, nie trzeba tablicy.

0

Ogólnie to zgodnie ze składnią języka wskaźnik do tablicy wskaźników (na przykład char *) deklarujemy tak:

char *(*ptr)[N] //gdzie N to jakaś stała

//i gdy na przykład masz taką tablicę
char* arr[] = {"a", "ab", "abc"};

//to możesz zrobić tak:
 char *(*ptr)[3] = &arr;

http://www.c4learn.com/c-programming/c-reading-complex-pointer-expression/ -> tu masz jak czytać (i deklarować) bardziej skomplikowane pointery

1 użytkowników online, w tym zalogowanych: 0, gości: 1