[C] Wskźniki kopiowanie tabic

0

Napisałem taki program na kopiowanie tablic za pomocą wskaźników.

#include <stdio.h>
#include <stdlib.h>
#define N 100

int main(void)
{
	int tab1[N];
	int tab2[N];
	int * wsk1, * wsk2;
	int temp;
	int i=0;
	
	wsk1=tab1;
	wsk2=tab2;
	
	for(i=0; i<N; i++)
		printf("%d ", tab1[i]);
	printf("\n");
	
	for(i=0; i>0; i--)
	{
		*wsk2=*wsk1;
		wsk1++;
		wsk2++;
	}	
	for(i=0; i<N; i++)
		printf("%d ", tab1[i]);		
	printf("\n");	
	
	printf("%s\n", tab2);
	system("pause");
	return 0;		
}

Tylko że w szkole zadeklarowali wskaźniki tak

int * wsk1=NULL;
int * wsk2=NULL;

poco jest ten NULL??

0

Po to żebyś mógł łatwo sprawdzić czy dany wskaźnik gdzieś pokazuje czy nie. Jak wskaźnik pokazuje na NULL to znaczy ze nie pokazuje nic sensownego i nie wolno go dereferować. Jak mu nie nadasz wartości to może się zdarzyć że będziesz myślał ze pokazujesz na cos sensownego a nie będziesz.

0

Czy ten program w ogóle Ci działa?

for(i=0; i>0; i--) // zmienna "i" już na samym początku jest nie większa od zera!
...
printf("%s\n", tab2); // %s to specyfikator konwersji dla łańcuchów znakowych (null terminated)
0

Czyli ten NULL jest tylko dla mojej wygody??

0

http://4programmers.net/Forum/Newbie/100389-prosba_o_tagowanie_watkow_-_nie_uzywaj_prefiksow
Czytać nie umiesz czy jak? Bo to już n-ty twój temat który źle nazywasz.

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