Witam
Pisząc prosty programik(poniżej) chciałem sprawdzić czy w funkcji strcat jako pierwszy argument mogę użyć dynamicznie alokowanej tablicy.
Ten zapis powodował zawieszenie programu
strcat(t,"0")
Z takim zapisem wszystko działało strcat(p,"0")
.
Gdy zrobiłem zwykły wskaźnik to wtedy mogłem podać t jako argument strcat i również program działał
```cpp
char*t;// 1
char p[10]="zero";
t=p;
Dlaczego tak się dzieje ? Gdy dynamicznie stworze tablice to t jest wskaznikiem na pierwszy element tablicy?
char*t= new char[10];
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{
char*t= new char[10];
char p[10]="zero";
t="zero";
for(int i=0;i<10;i++)
{
cout<<"kolumna : "<<i<<" wartosc "<<p<<endl;
if((p[i])=='\0') cout<<i<< "zero"<<endl;
}
for(int i=0;i<10;i++)
{
cout<<"kolumna : "<<i<<" wartosc "<<t<<endl;
if((t[i])=='\0') cout<<i<< "zero"<<endl;
}
strcat(p,"0");
cout<<"p "<<p<<endl;
getch();
return EXIT_SUCCESS;
}