Lista argumentów programu tylko z argv

0

Chcialem napisac na poczatek prosty program ktory wyswietli wszystkie argumenty wywolania programu (bez pierwszego - nazwy programu) ale niekorzystajac z argc (by pocwiczyc same wskazniki). Kod ktory napisalem jest nastepujacy:

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

void parser(char**);

int main(int argc, char* argv[])
{
	parser(argv);

	return EXIT_SUCCESS;
}

void parser(char** ss)
{
	while(++ss != NULL)
	{
		printf("%s\n", *ss);
	}
}

i nawet wszystkie argumenty sie wyswietlaja w kolejnych linijkach ale po ostatnim jest napisane Segmentation fault. Co robie zle, gdzie mam blad? Prosze o pomoc.

2

Ostatnim elementem tablicy argv nie jest null. Tutaj akurat jest wymagane uzycie argc.

1

A czego sie niby spodziewałeś? o_O Skąd pomysł że za argv[] jest 0 / NULL? No i przecież odwołujesz się ZA tablicę żeby tego nulla sprawdzić! Nie kombinuj tylko użyj argc.

0

Jesli nie jest to NULL to juz wszystko jasne. A z tym NULLem to skojarzylem z tablicami znakowymi. Myslalem ze jest tak samo. Skoro napis typu char* konczy sie '\0' czyli nullem to myslalem ze tutaj bedzie analogicznie. Czyli bez argc sie nie obejdzie :)

Dziekuje za pomoc :)

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