Борланд, не уверен что память под argv выделяется до запуска программы... Не в CRT это разве должно делаться?
Цитата:
Сообщение от Borland
И это правильно - насколь мне известно, любая ОС может позволить приложению читать "чужую" память и даже писать туда,
|
нет. Для непривелигированных приложений это не возможно, будет ошибка segmentation failed, в виндах что-то вроде ошибки "Память по адресу 0xFFFFFF" не может быть read (меня всегда веселило такое сообщение).
Цитата:
Сообщение от Borland
Т.е. если так необходимо перераспределить память под argv - необходимо не "решать" задачу в лоб, а ковырять API процесса-владельца на предмет заставить выполнять соответствующую задачу его.
|
Да нету процесса владельца-то (не, ну то-есть есть конечно, но стандартный шелл юзера скажем, не программный вроде exec). Хорошо, другой вопрос, как вариант решения - я копирую этот массив (не перераспределяю текущий), манипулирую с копией, а потом, просто изменяю указатель argv чтобы он указывал в новое место. Это-то изменение указателя будет легитимно?