Il mio main.c è questo:
- Codice:
#include "farfallino.h"
int main(){
char str1[] = "afaifiufuofolafa";
char *ris = farfallino_decode(str1);
return 0;
}
il mio file.h è:
- Codice:
#if !defined FARFALLINO_H
#define FARFALLINO_H
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
extern char *farfallino_decode(const char *s);
#endif
il mio file.c è:
- Codice:
#include "farfallino.h"
char *farfallino_decode(const char *s){
size_t lung = strlen(s);
size_t len = 0;
char prova = 0;
char *c = &prova;
if (s == NULL){
return NULL;
}
for (size_t k = 0; k < lung; k++){
if (s[k] == 'a' && s[k + 1] == 'f' && s[k + 2] == 'a'){
len++;
c = realloc(c, len * sizeof(char));
c[k] = 'a';
k += 3;
}
else if (s[k] == 'e' &&s[k + 1] == 'f' &&s[k + 2] == 'e'){
len++;
c = realloc(c, len * sizeof(char));
c[k] = 'e';
k += 3;
}
else if (s[k] == 'i' &&s[k + 1] == 'f' && s[k + 2] == 'i'){
len++;
c = realloc(c, len * sizeof(char));
c[k] = 'i';
k += 3;
}
else if (s[k] == 'o' &&s[k + 1] == 'f' && s[k + 2] == 'o'){
len++;
c = realloc(c, len * sizeof(char));
c[k] = 'o';
k += 3;
}
else if (s[k] == 'u' && s[k + 1] == 'f' &&s[k + 2] == 'u'){
len++;
c = realloc(c, len * sizeof(char));
c[k] = 'u';
k += 3;
}
else{
len++;
c = realloc(c, len * sizeof(char));
c[k] = s[k];
}
}
free(c);
return c;
}
Non capisco perchè mi da Memory error, qualcuno ha capito perchè?