I'm trying to implement setLength procedure in C...
But why it crashed when I call strlen??
Code:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
void setLength(char *string, int length)
{
string = (char *)malloc((length+ 1) * sizeof(char));
int i = 0;
for(; i<length; i++)
string[i] = ' ';
string[length] = '\0';
//Doesn't crash!
//printf("[%d]\n", strlen(str));
}
int main()
{
char *str;
setLength(str, 10);
//Crash!
printf("[%d]\n", strlen(str));
printf("[%s]", str);
free(str);
return 0;
}
Something wrong?