Mam do napisania następująca funkcje, która powinna zadziałać dla następujących tablic :
int A[] = {10, 20, 30, 40, 50, 60, 70, -1};
int B[] = {100, 200, 300, 400, 500, 600, 700, 800, -1};
int C[] = {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, -1};
int* D[] = {A, B, C, NULL};
void display(int **ptr);
Problemem są 2 gwiazdki. Ponadto jak uruchamiam program błędnie wyświetla ostatnią tablice C dodając 7 zer przed liczbami. W czym jest problem?
#include <stdio.h>
#include <stdlib.h>
int A[] = {10, 20, 30, 40, 50, 60, 70, -1};
int B[] = {100, 200, 300, 400, 500, 600, 700, 800, -1};
int C[] = {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, -1};
int* D[] = {A, B, C, NULL};
void display(int **ptr)
{
if(ptr!=NULL)
{
for(int i=0;*(ptr+i)!=-1;++i)
{
printf("%d ", *(ptr+i));
}
printf("\n");
for(int i=8;*(ptr+i)!=-1;++i)
{
printf("%d ", *(ptr+i));
}
printf("\n");
for(int i=17;*(ptr+i)!=-1;++i)
{
printf("%d ", *(ptr+i));
}
}
}
int main()
{
display(*D);
}