Witam potrzebuję zrobić program, a w zasadzie funkcję, której argumentem jest wskaźnik do pierwszego elementu ciągu. Następnie alokuje miejsce o tej samej długości pod innym adresem i zapisuje tam pierwotny ciąg w odwrotnej kolejności oraz zwraca wskaźnik do pierwszego elementu ciągu.
Dawno nie miałem do czynienia ze wskaźnikami i mam problem, prawdopodobnie z alokacją pamięci, program nie chce liczyć długości ciągu lub gubi adresy i wyświetla niepoprawne elementy ciągu :/ Oto krótki program który powinien to robić:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <stddef.h>
int main()
{
int n, *cn;
char ctekst;
char *cwsk1;
n=0;
printf("*** Program odwracajacy ciag znakow ***\n");
printf("Podaj ciag znakow: ");
scanf("%s",&ctekst);
cwsk1 = (char*) malloc(30 * sizeof(char));
cwsk1=&ctekst;
while(*cwsk1 != 0)
{
n++;
printf("n: %d\n",n);
printf("c: %c\n",*cwsk1);
printf("w: %p\n\n",cwsk1);
cwsk1++;
}
Program się sypie gdy podam więcej znaków niż 5