Odpowiedź: Nie.
Ale można szukać alternatyw.
To nie działa, bo tablica jest zmienną lokalną - kończy życie po zakończeniu funkcji.
Rozwiązanie nie jest stabilne - “brak pewności rezerwacyjnej”.
Jak to zatem zrobić?
#include <stdio.h>
#include <stdlib.h>
int *create_array(int size) {
int *arr = (int *)malloc(size * sizeof(int));
if (arr == NULL) {
return NULL;
}
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
return arr;
}
int main() {
int size = 5;
int *array = create_array(size);
if (array == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
free(array); // Zwolnij pamięć
return 0;
}Alternatywa - zrobić procedurę, a argument funkcji jest tablicą (wskaźnikiem).
Napis - ciąg składający się z co najmniej jednego znaku.
Znaki cudzysłowu nie są częścią łańcucha.
Język C nie posiada typu string/łańcuchowego. Wszystkie napisy traktowane są jako tablice typu char. Ostatnim znakiem w tablicy jest znak \0.
srtlen a sizeof#include <stdio.h>
int main()
{
char * napis = "ab6sWR";
char * kopia;
kopia=napis;
printf("%s\n",napis);
printf("%p\n",napis);
printf("%p\n",&napis);
printf("%s\n",kopia);
printf("%p\n",kopia);
printf("%p\n",&kopia);
return 0;
}czy można to zrobić notacją tablicową?
scanfhttps://pl.wikibooks.org/wiki/C/scanf
https://en.cppreference.com/w/c/io/fscanf
getshttps://pl.wikibooks.org/wiki/C/gets
https://en.cppreference.com/w/c/io/gets
fgetsWskaźnik czy tablica?
#include <stdio.h>
int main()
{
char slowo[5];
gets(slowo);
printf("%s\n",slowo);
puts(slowo);
return 0;
}#include <stdio.h>
int main()
{
char slowo[5];
gets_s(slowo, 4*sizeof(char));
printf("%s\n", slowo);
puts(slowo);
return 0;
}scanf - do znaku niedrukowanego, reszta do końca liniigets - mało bezpieczna przy przepełnieniufgets - dodaje koniec linii na końcu napisuprintfhttps://pl.wikibooks.org/wiki/C/printf
https://en.cppreference.com/w/c/io/fprintf
putshttps://pl.wikibooks.org/wiki/C/puts
https://en.cppreference.com/w/c/io/puts
fputshttps://gist.github.com/pjastr/100599c74e34cd814f671daccd0668b0
https://gist.github.com/pjastr/37e259e243a7b9d26e9c45d528c84c02
https://gist.github.com/pjastr/8c059084a44781c9407ee6ab0a3c5ef3
https://gist.github.com/pjastr/1285dbb398d7cfed9d372b7ed292d599
https://gist.github.com/pjastr/f59613feebb3900634cbe41658ae2be7
wchar_tPolskie znaki?
czy to możliwe?
Tak nie robimy (!)