Бляди тоже ок, ага.
Войти
!bnw
Сегодня
Клубы
рабское
c
быдлокодинг
log
Сегодня познал неиллюзорную разницу между char *foo = "bar"; и char foo[] = "bar";.
#DPDLHQ
/
@l29ah
/
4279 дней назад
а чо, современный компилятор не хуярит по ебалу за первое?
#DPDLHQ/EVM
/
@muromec
/
4279 дней назад
@muromec
Нет. И я немало кода такого видел и писал.
#DPDLHQ/SKF
/
@l29ah
-->
#DPDLHQ/EVM
/
4279 дней назад
@muromec
а почему должен?
#DPDLHQ/RVF
/
@stiletto
-->
#DPDLHQ/EVM
/
4279 дней назад
алсо, который вариант выделяется на стеке, а который нет?
#DPDLHQ/3IQ
/
@stiletto
/
4279 дней назад
@stiletto
Оба выделяются в сегменте данных, только первый ещё может выделиться на стеке в виде указателя, если компилятор тупой.
#DPDLHQ/U89
/
@l29ah
-->
#DPDLHQ/3IQ
/
4279 дней назад
А где хранится каждый из вариантов? Стек, куча, data?
#DPDLHQ/BMK
/
@etw
/
4279 дней назад
@etw
первый на стеке, второй в data
#DPDLHQ/IBI
/
@muromec
-->
#DPDLHQ/BMK
/
4279 дней назад
а мне все говорят, что char[] выделится на стеке
#DPDLHQ/QBL
/
@stiletto
/
4279 дней назад
@stiletto
(в смысле содержимое)
#DPDLHQ/ZZ5
/
@stiletto
-->
#DPDLHQ/QBL
/
4279 дней назад
@stiletto
да. char[] на стеке - потомушо локальная переменная. местами перепутал
#DPDLHQ/XUH
/
@muromec
-->
#DPDLHQ/QBL
/
4279 дней назад
@muromec
char* тоже локальная переменная, лол только она будет указателем в сегмент данных, а char[] - в стек
#DPDLHQ/331
/
@stiletto
-->
#DPDLHQ/XUH
/
4279 дней назад
@stiletto
char* - это указатель, а то что ему присваевается живет в дата а у char[] и данные и указатель - на стеке
#DPDLHQ/75I
/
@muromec
-->
#DPDLHQ/331
/
4279 дней назад
@muromec
> а у char[] и данные и указатель - на стеке Что за хуйню ты несёшь?
#DPDLHQ/M3X
/
@l29ah
-->
#DPDLHQ/75I
/
4279 дней назад
@stiletto
>For instance, the string defined by char s[] = "hello world" in C and a C statement like int debug=1 outside the "main" would be stored in initialized read-write area. Нашла статью в вики, и там говорится, что это не так.
#DPDLHQ/CUI
/
@etw
-->
#DPDLHQ/331
/
4279 дней назад
@etw
http://en.wikipedia.org/wiki/Data_segment
#DPDLHQ/FOC
/
@etw
-->
#DPDLHQ/CUI
/
4279 дней назад
@l29ah
хуй соси, придурь. ну или сходи проверь, какой у этой хуйни адрес будет
#DPDLHQ/4PJ
/
@muromec
-->
#DPDLHQ/M3X
/
4279 дней назад
Как-то так: cat shit.c
#include
<stdio.h> char *shit() { char *a = "i suck cocks"; return a; } char *fuck() { char a[] = "i suck cocks"; return a; } void crapstack(int n) { if (n>0) crapstack(n-1); } int main(int argc, char *argv[]) { char *c; c = shit(); crapstack(10); printf("%s\n",c); c = fuck(); crapstack(10); printf("%s\n",c); return 0; } ./shit i suck cocks iô¶E
#DPDLHQ/KJL
/
@stiletto
/
4279 дней назад
@stiletto
ачо, просто посмотреть на %p нельзя было?
#DPDLHQ/MEM
/
@muromec
-->
#DPDLHQ/KJL
/
4279 дней назад
@muromec
так живописнее
#DPDLHQ/WDN
/
@stiletto
-->
#DPDLHQ/MEM
/
4279 дней назад
@stiletto
пидару лишь бы уронить все в корку
#DPDLHQ/AJ7
/
@muromec
-->
#DPDLHQ/WDN
/
4279 дней назад
@muromec
к тому же над адресом придется еще думать, куда эти закорючки указывают блеать
#DPDLHQ/X7X
/
@stiletto
-->
#DPDLHQ/MEM
/
4279 дней назад
@stiletto
хули тут думать - определил char x; и посмотрел на &x - оно точно на стеке
#DPDLHQ/LTS
/
@muromec
-->
#DPDLHQ/X7X
/
4279 дней назад
алсо, оп-пидар скоро еще узнает про static и ваще обосрется, я так думаю.
#DPDLHQ/6VW
/
@muromec
/
4279 дней назад
@muromec
cat shit.c|awk '{print(" "$0);}'
#include
<stdio.h> char *shit() { char *a = "i suck cocks"; return a; } char *fuck() { char a[] = "i suck cocks"; return a; } void crapstack(int n) { if (n>0) crapstack(n-1); } int main(int argc, char *argv[]) { char *c; c = shit(); crapstack(10); printf("%p\n",&c); printf("%p %s\n",c,c); c = fuck(); crapstack(10); printf("%p %s\n",c,c); return 0; } ./shit 0xbfd7b2ac 0x80485c8 i suck cocks 0xbfd7b27b ¿ suck co¦¥ Eô¶E{²{²5 E сучка я сделал это раньше чем увидел этот коммент
#DPDLHQ/UI4
/
@stiletto
-->
#DPDLHQ/LTS
/
4279 дней назад
Ппц загоны.
#DPDLHQ/Y81
/
@ap
/
4279 дней назад
@muromec
Можно тупо скомпилять с -S и увидеть там **MEMCPY**.
#DPDLHQ/HPJ
/
@mieye
-->
#DPDLHQ/MEM
/
4278 дней назад
@muromec
> MEM
#DPDLHQ/39F
/
@ap
-->
#DPDLHQ/MEM
/
4278 дней назад
@etw
Константа в обоих случаях будет в .data (потому что сразу в стеке её не сделаешь), но при заходе в функцию, будет скопирована в стек.
#DPDLHQ/CSJ
/
@mieye
-->
#DPDLHQ/CUI
/
4278 дней назад
@mieye
Но если она влазит в 4 байта, то может быть запихнута сразу в movl.
#DPDLHQ/E9P
/
@mieye
-->
#DPDLHQ/CSJ
/
4278 дней назад
@mieye
У тебя калькулятор вместо писюка.
#DPDLHQ/DNK
/
@l29ah
-->
#DPDLHQ/E9P
/
4278 дней назад
BnW для ведрофона
BnW на Реформале
Викивач
Котятки
Цоперайт © 2010-2016
@stiletto
.