Witam, przyznaję szczerze, że nie rozumiem pewnej rzeczy i będę bardzo wdzięczny za wytłumaczenie. Chodzi o dostęp do argumentów przekazywanych do programu.
Patrząc w internet robi się to takim sposobem:
#include <stdio.h>
int main( int argc, char ** argv ) {
printf( "argc = %d\n", argc );
for( int i = 0; i < argc; ++i ) {
printf( "argv[ %d ] = %s\n", i, argv[ i ] ); //Dostęp jak do jednowymiarowej tablicy, dlaczego ?
}
}
Tutaj robie w zasadzie to samo tyle, że definiuje wskażnik na wskażnik do inta. Dlaczego dostęp do danych odbywa się w inny sposób niż do argumentów przekazywanych do programu ?
W pierwszym przypadku mam char**
a w drugim```
int**
```c
int main(int argc, char *argv[])
{
int** x;
x = malloc(4 * sizeof(int*));
for (int i = 0; i < 4; i++) {
x[i] = malloc(4 * sizeof(int));
}
for(int i = 0; i < 4; i++)
{
for(int j =0; j < 4; j++)
{
x[i][j] = 47;
}
}
printf("value=%d",x[0][0]); // OK
printf("value=%d",x[0]); // NOK
return 0;
}
%c
zamiast%s
?