Μάλιστα, τώρα κατάλαβα.
Δεν έχει να κάνει με το σύστημα, αλλά με την C που διαχειρίζεται τις διαθέσιμες περιοχές μνήμης όπως αυτή (δηλ. ο χρήστης) θέλει.
Συντονιστής: konnn

#include <stdio.h>
#include <string.h>
#include <ctype.h>
void capitalize(char *s)
{
for (; *s; s++)
*s = toupper(*s);
}
void func(char *s)
{
capitalize(s);
puts(s);
}
int main(void)
{
func("string");
return 0;
}
void func(char *s)
{
char x[10];
strcpy(x, s);
capitalize(x);
puts(x);
}

int plus10( int *n )
{
return *n + 10;
}
int main( void )
{
printf( "%d\n", plus10( &2 ) ); // ΣΦΑΛΜΑ... το 2 είναι απλώς μια σταθερά, δεν έχει διαχειρίσιμη διεύθυνση
}
int main( void )
{
int n;
n = 2;
printf( "%d\n", plus10( &n ) ); // Σωστό!
...
}

#include <stdio.h>
#include <string.h>
#include <ctype.h>
void func(char* s)
{
s[0] = 'a';
}
int main(void)
{
func("string");
return 0;
}


for(1. i=0; 2. i<n; 3. i++)
int 1. i=0;
while(2. i < n)
{
....
3. i++; ή ++i;
}

#include <stdio.h>
#include <string.h> // strcat()
void reverse_name(char *name)
{
char *p = name, first_letter[1+1];
while (*p == ' ') p++; // skip spaces and go to first letter
first_letter[0] = *p;
while (*p != ' ') p++; // go to next space
while (*p == ' ') p++; // skip spaces and go to surname
for (; *p != ' ' && *p; p++, name++)
*name = *p;
*name = '\0';
strcat(name, ", ");
strcat(name, first_letter);
strcat(name, ".");
}
int main(void)
{
char name[80+1] = {'\0'};
gets(name);
reverse_name(name);
puts(name);
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
/* ------------------------------------------------------- */
void reverse_name( char *name )
{
char ch, *cp = NULL;
if ( !name )
return;
/* find & save the 1st letter of first name */
for (cp=name; *cp && isspace(*cp); cp++) /* skip any blanks */
; /* void */
if ( !*cp ) /* name was empty or all blanks */
return; /* ... early exit */
ch = *cp; /* save 1st letter */
/* find start of last name */
for (; *cp && !isspace(*cp); cp++ ) /* skip first name */
; /* void */
for (; *cp && isspace(*cp); cp++ ) /* skip any blanks */
; /* void */
if ( !*cp ) /* there was no non-blank last name */
return; /* ... early exit */
/* copy last name to start of name */
while ( *cp && !isspace(*cp) )
*name++ = *cp++;
/* append the mummble-jumble asked by the exercise */
*name++ = ',';
*name++ = ' ';
*name++ = ch;
*name++ = '.';
*name = '\0';
}
/* ------------------------------------------------------- */
int main( void )
{
char name[] = " Harry Karayannis ";
reverse_name( name );
printf( "%s\n", name );
system("pause"); /* windows only */
exit( EXIT_SUCCESS );
}
