小编sta*_*k92的帖子

在内存中我的变量存储在C中?

通过考虑将内存分为四个部分:数据,堆,堆栈和代码,全局变量,静态变量,常量数据类型,局部变量(在函数中定义和声明),变量(在main函数中),指针,并动态分配空间(使用malloc和calloc)存储在内存中?

我认为他们将分配如下:

  • 全局变量------->数据
  • 静态变量------->数据
  • 常量数据类型----->代码
  • 局部变量(在函数中声明和定义)--------> stack
  • 在main函数-----> heap中声明和定义的变量
  • 指针(例如char *arr,int *arr)------->堆
  • 动态分配空间(使用malloc和calloc)-------->堆栈

我只是从C的角度来指这些变量.

如果我错了,请纠正我,因为我是C的新手.

c memory types memory-management

134
推荐指数
5
解决办法
20万
查看次数

虚拟内存和物理内存有什么区别?

我经常对操作系统中的虚拟化概念感到困惑.考虑将RAM作为物理内存,为什么我们需要虚拟内存来执行进程?

当来自外部硬盘驱动器的进程(程序)被带到主存储器(物理存储器)以执行时,该虚拟存储器在哪里.

谁负责虚拟内存以及虚拟内存的大小?

假设RAM的大小是4GB(即2 ^ 32-1地址空间),虚拟内存的大小是多少?

virtualization ram operating-system memory-management virtual-memory

90
推荐指数
5
解决办法
12万
查看次数

传递数组作为reactjs中的道具

我是新来的反应.

我一直在尝试反应,我一直坚持如何使用道具传递数组.

情况1:

var c = ['program'];
var Navigation = React.createClass({
    getInitialState: function () {
        return {
            openDropdown: -1
        };
    },
    getDefaultProps: function () {
        return {
            config: ['everyone']
        };
    },
    render: function () {
        return (
            <div className="navigation">
                helloworld {this.props.config[0]};
            </div>
            );
    }
});

React.render(<Navigation config={c}/>, document.body);
Run Code Online (Sandbox Code Playgroud)

这是渲染helloworld计划.这是预料之中的.

后来我试过了.

情形2:

var c = ['program'];
var Navigation = React.createClass({
    getInitialState: function () {
        return {
            openDropdown: -1
        };
    },
    getDefaultProps: function () {
        return {
            config: ['everyone']
        };
    },
    render: …
Run Code Online (Sandbox Code Playgroud)

reactjs

35
推荐指数
2
解决办法
6万
查看次数

mongo中的组,不包括空值

我有mongo查询,它对文档进行组操作.

我几乎得到了预期的结果,除了我想要在没有空值或空值的情况下优化结果.

目前我的查询如下所示:

db.productMetadata.aggregate([{$group:{"_id":{"color":"$productAttribute.colour","gender":"$productAttribute.gender"},"count" : {$sum : 1}}}]);
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样:

{ "_id" : { "color" : "BLUE", "gender" : "MEN" }, "count" : 1 }
{ "_id" : {  }, "count" : 4 }
{ "_id" : { "color" : "NA", "gender" : "WOMEN" }, "count" : 1 }
{ "_id" : { "color" : "BLACK", "gender" : "MEN" }, "count" : 1 }
{ "_id" : { "color" : "BROWN", "gender" : "WOMEN" }, "count" : 1 }
{ "_id" …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework mongodb-aggregation

17
推荐指数
1
解决办法
2万
查看次数

在c ++中使用const

我是C++的新手.我正在阅读一本C++书

const int i[] = { 1, 2, 3, 4 };
float f[i[3]]; // Illegal
Run Code Online (Sandbox Code Playgroud)

它说浮动变量的声明在编译期间是无效的.为什么?

假设我们使用

int i = 3;
float f[i];
Run Code Online (Sandbox Code Playgroud)

有用.

第一种情况有什么问题?

谢谢.

c++ compiler-errors compilation const

9
推荐指数
1
解决办法
374
查看次数

线程创建期间程序执行的流程

我是新手.

我编写了一个示例程序来创建一个线程.

#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<string.h>
#include<pthread.h>


void * func(void * temp)
{
    printf("inside function\n");
    return NULL;
}

int main()
{
    pthread_t pt1;
    printf("creating thread\n");
    pthread_create(&pt1,NULL,&func,NULL);
    printf("inside main created thread\n");

return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译后,答案是:

creating thread
inside main created thread
inside function
inside function
Run Code Online (Sandbox Code Playgroud)

我知道答案可能会在执行in func return 0;之前调用printf.但是如何在解决方案inside function中打印两次?

gcc -o temp thread1.c -lpthread 第一次运行时编译:

creating thread
inside main created thread
Run Code Online (Sandbox Code Playgroud)

第二轮:

creating thread
inside main created thread
inside function
inside function
Run Code Online (Sandbox Code Playgroud)

gcc …

c multithreading pthreads

8
推荐指数
1
解决办法
603
查看次数

如何在c中解决这个fork()示例

int x=0;
int main()
{
  for(i=0;i<2;i++)
  {
    fork();
    x=x+5;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

图

我是这个fork()概念的新手.上面的树(带有x值)是上面提到的C代码的正确解决方案吗?节点中的x值分别是其进程的值.

我们还可以从子进程返回父进程的值吗?假设在上面的示例代码中,我可以x将子进程的值返回给父进程吗?

c unix operating-system fork process

6
推荐指数
2
解决办法
3314
查看次数

c ++中的多个定义错误和解决此问题的解决方案

我是C++的新手.我对C++中的多个定义错误有些怀疑.

假设我在一个程序中有3个文件.一个头文件和两个.cpp文件.我已将头文件包含在.cpp文件中.

  1. 我在头文件中声明了一个类,并且我以完全相同的方式在每个.cpp文件中定义了类.那么这种类型的实现会导致多个定义错误吗?如果是这样,是因为它有两个类定义副本,编译器在链接两个.o文件时不知道要采用哪一个?

我们可以通过extern在头文件中使用并仅在一个文件中定义类来解决这个问题吗?如果我们可以通过使用此方法解决问题,我们是否必须将.cpp(带有类定义)包含到其他.cpp文件中(没有课程定义)?

  1. 我在头文件中声明并定义了一个类.这种情况是否与上述相同(1中提到)?

  2. 我在头文件中声明了一个类,我在每个.cpp文件中定义了类,但定义(函数体)不同.那么这种类型的实现会导致多个定义错误吗?如果是这样,我们如何解决.cpp文件中函数体不同的问题?

c++ compiler-errors multiple-definition-error linkage

5
推荐指数
2
解决办法
4万
查看次数

c中单引号中两个字符的用法

         #include<stdio.h>

         int main()
         {

           char ch = 'A';

           printf("%d\n",'ag');

           printf("%d\n",'a');

           printf("%d, %d, %d, %d", sizeof(ch), sizeof('a'), sizeof('Ag'), sizeof(3.14f));

          return 0;
         }
Run Code Online (Sandbox Code Playgroud)

在g ++和gcc上运行时,我曾经对这个问题的输出有很多怀疑.

但我通过引用这些链接已经清除了几乎所有的疑虑:

  1. C/C++中的单引号,双引号和sizeof('a')

  2. 单引号与C或C++中的双引号

我仍然需要了解这个问题的输出.

有人可以printf("%d\n",'ag');在程序中解释上面提到的输出.它是如何实际存储在内存中的?

Linux/GCC平台上程序的输出是:

24935
97
1, 4, 4, 4
Run Code Online (Sandbox Code Playgroud)

c

3
推荐指数
1
解决办法
398
查看次数

在c中使用memset()

我写了一个小程序来习惯memset()操作:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>

int main()
{
    int arr[10], i;
    int t = INT_MAX;
    memset(arr, t, sizeof(arr));
    for (i = 0; i < 10; i++)
        printf("%d\t",arr[i]);

    printf("%d",t);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上述计划的结果是:

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1

2147483647
Run Code Online (Sandbox Code Playgroud)

memset()上述程序的行为是什么?为什么要将数组元素设置为-1

c memset

3
推荐指数
1
解决办法
1023
查看次数