What's wrong with the string?
From: Frank (young726_at_yahoo.com)
Date: 06/11/04
- Previous message: John Williams: "Re: User/Kernel modes in ARM for micro-C Linux"
- Next in thread: Bill Zhao: "Re: What's wrong with the string?"
- Reply: Bill Zhao: "Re: What's wrong with the string?"
- Reply: rcobo: "Re: What's wrong with the string?"
- Reply: Freddy: "Re: What's wrong with the string?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 10 Jun 2004 16:10:11 -0700
Hi,
I am developing an application on PPC405 (Walnut). But somehow in the
string in the C function doesn't work. The code is as below:
void example() {
char *str = "this is a test";
while (*str != 0) {
putc(*str++);
}
return;
}
putc() is a function to put a char on the serial console.
This function ends up with a strange string on the serial console
"><...HH..>>..."
But if I modify the function to the following one:
void example_modified() {
char str[10] = \
{'t','h','i','s',' ','i','s',' ','a',' ','t','e','s','t','\0'};
int i = 0;
for (i = 0; str[i] != 0; i++) {
putc(str[i]);
}
return;
}
Then it works. So I am wondering if there is something wrong with the
stack setting. Can anybody tell me what makes the above two functions
different? Why using char array str[10] works while using pointer str*
doesn't work?
Thanks!
Frank
- Previous message: John Williams: "Re: User/Kernel modes in ARM for micro-C Linux"
- Next in thread: Bill Zhao: "Re: What's wrong with the string?"
- Reply: Bill Zhao: "Re: What's wrong with the string?"
- Reply: rcobo: "Re: What's wrong with the string?"
- Reply: Freddy: "Re: What's wrong with the string?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|