Pelles C forum Pelles C forum
News: Version 6.00 released!
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
September 06, 2010, 08:48:23 PM


Login with username, password and session length


Pages: [1]   Go Down
  Print  
Author Topic: Access violation while call strtok function (write to read-only rdata section)  (Read 280 times)
BottleNeck
Member
*
Offline Offline

Posts: 2


« on: June 29, 2010, 09:03:14 PM »

Problem is in trying to write to .rdata section of produced .exe file, because of 40000040 (only readable) section flags.
Set it to C0000040 (readable and writeable) solve the problem (but only with hex editor).
Code sample:
#include <stdio.h>
#include <string.h>

int main(void)
{
  char *p;
   char *str = "LINE TO BE SEPARATED";
   char *delimiter =  " ";
  p = strtok(str,delimiter);
  printf(p);
  do {
    p = strtok('\0', ", ");
    if(p) printf("|%s", p);
  } while(p);

  return 0;
}

Logged
iZzz32
Member
*
Offline Offline

Posts: 22


« Reply #1 on: June 30, 2010, 06:05:56 AM »

Not a bug. String literals are constants. Use:
Code:
char str[] = "LINE TO BE SEPARATED";
Logged
BottleNeck
Member
*
Offline Offline

Posts: 2


« Reply #2 on: June 30, 2010, 10:09:24 AM »

Example above I get from http://www.opengroup.org/onlinepubs/000095399/functions/strtok.html
Thank you for explanation.
Logged
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.105 seconds with 20 queries.