сегодня я пытался подружиться с char * string... но, кажется, у меня не получается :) Каждый раз, когда я вызываю функцию strcmp/strncmp/strcpy, мой источник повреждается...
вот фрагмент
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
int UID;
char name[20];
char surname[20];
};
char * getString(int minChars, int maxChars);
struct student * myStud;
int main(int argc, char** argv) {
myStud = (struct student*)malloc(sizeof(struct student));
while(1)
{
printf("\nEnter new name: ");
strcpy(myStud->name,getString(1,19));
printf("\n The values is now %s",myStud->name);
}
return (EXIT_SUCCESS);
}
char * getString(int minChars, int maxChars)
{
char string[maxChars+1];
scanAgain:
scanf("%s",&string);
if(strlen(string)<minChars)
{
printf("\nToo few symbols, try again: ");
goto scanAgain;
}
if(strlen(string)>maxChars)
{
printf("\nToo many symbols, try again: ");
goto scanAgain;
}
string[maxChars]='\0';
return(string);
}
Выход:
Enter new name: Alekasdasd
The values is now Alekasda�#
Enter new name:
Я всего лишь новичок, так что это может быть что-то очень простое... может быть и нет. да, кстати, используя Linux и NetBeans в качестве SDK, gcc в качестве компилятора.