Cześć, mam pytanie odnośnie przydzielenia pamięci, ale najpierw kod-
//odwraca zawartosc lancucha i zapisuje ja w tym samym lancuchu.
#include <stdio.h>
#include <string.h>
void invert(char *s, int n);
int main(void){
int n;
char *string;
puts("Wpisz dowolne zdanie, program je odwroci.");
gets(string);
n=strlen(string);
puts("Wpisales:");
puts(string);
invert(string, n);
puts("Po odwroceniu kolejnosci:");
puts(string);
}
void invert(char *s, int n){
int i;
char temp[n];
strcpy(temp, s);
for(i=0;i<n;i++)
s[i]=temp[n-i-1];
}
Ten program działa, ale tylko dla krótkich łańcuchów. Jestem ciekawa dlaczego i co zrobić, żeby działał dla dowolnej długości. Jeśli mam złe podejście do problemu to proszę o naprostowanie (opis dzialania w komentarzu). ;)