Perguntas com a marcação «memory-alignment»

8
Objetivo do alinhamento da memória
É certo que eu não entendo. Digamos que você tenha uma memória com uma palavra de duração de 1 byte. Por que você não pode acessar uma variável de 4 bytes de comprimento em um único acesso à memória em um endereço não alinhado (ou seja, não divisível por 4), …

16
Exemplos convincentes de alocadores personalizados de C ++?
Quais são realmente algumas boas razões para abandonar std::allocatoruma solução personalizada? Você já se deparou com alguma situação em que era absolutamente necessário para correção, desempenho, escalabilidade etc.? Algum exemplo realmente inteligente? Alocadores personalizados sempre foram um recurso da Biblioteca Padrão que eu não precisava muito. Eu estava pensando se …


4
As variáveis ​​da pilha estão alinhadas pelo GCC __attribute __ ((alinhado (x)))?
eu tenho o seguinte código: #include <stdio.h> int main(void) { float a[4] __attribute__((aligned(0x1000))) = {1.0, 2.0, 3.0, 4.0}; printf("%p %p %p %p\n", &a[0], &a[1], &a[2], &a[3]); } E eu tenho a seguinte saída: 0x7fffbfcd2da0 0x7fffbfcd2da4 0x7fffbfcd2da8 0x7fffbfcd2dac Por que o endereço de a[0]não é um múltiplo de 0x1000? O que …

2
Por que os endereços argc e argv estão separados por 12 bytes?
Eu executei o seguinte programa no meu computador (Intel de 64 bits executando Linux). #include <stdio.h> void test(int argc, char **argv) { printf("[test] Argc Pointer: %p\n", &argc); printf("[test] Argv Pointer: %p\n", &argv); } int main(int argc, char **argv) { printf("Argc Pointer: %p\n", &argc); printf("Argv Pointer: %p\n", &argv); printf("Size of &argc: …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.