昨天我接受采访时面试官问我存储变量的存储类.
我的回答是战争:
Local Variables are stored in Stack.
Register variables are stored in Register
Global & static variables are stored in data segment.
The memory created dynamically are stored in Heap.
Run Code Online (Sandbox Code Playgroud)
他问我的下一个问题是:他们为什么要存储在那些特定的记忆区域?为什么Local variable 没有存储register(虽然我需要auto在我的程序中经常使用变量)?或者为什么not要存储全局变量或静态变量stack?
然后我一无所知.请帮我.
我需要导出一个没有外键的大型数据库.执行此操作的命令是什么?
这是我尝试的但我知道这是不正确的.
mysqldump -u root -p DBNAME SET FOREIGN_KEY_CHECKS = 0; | gzip > database.sql.gzip
Run Code Online (Sandbox Code Playgroud) 我在登记我的文件时尝试使用代码审查功能,但我在团队资源管理器的顶部收到以下消息:
要从同行请求代码审核,请启用新功能.单击此处以启用新功能
当我点击链接时,它会将我带到我的项目个人资料网站,但我没有看到任何选项可以在任何地方激活代码审查功能...
在realloc再次使用指针变量之前是否需要释放内存.以下哪项是正确的?
for(i = 0; i < n; i++){
myArray = (int *)realloc(myArray, i*sizeof(int));
}
for(i = 0; i < n; i++){
myArray = (int *)realloc(myArray, i*sizeof(int));
free(myArray);
myArray = NULL;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个小的java 2d塔防游戏,我遇到了试图计算如何做导弹的问题.经过几个小时的搜索和测试,我更加困惑.
到目前为止我所拥有的是:
Math.sqrt(x2, x1, y2, y1).现在我遇到的问题是如何将导弹的增量x和y缩放到目标,这看起来很逼真.数学不是我的强项,而是在这里展示.下面我展示了我对塔楼SE象限的看法.
public int distanceX, distanceY;
public double sep, scale;
if(xBullet < Screen.mobs[shotMob].x && yBullet < Screen.mobs[shotMob].y){
distanceX = Screen.mobs[shotMob].x- xBullet;
distanceY = Screen.mobs[shotMob].y - yBullet;
sep = Math.sqrt( (distanceX * distanceX) + (distanceY * distanceY));
scale = // This is the part I am confused about.
xBullet += distanceX * scale;
yBullet += distanceY * scale;
Run Code Online (Sandbox Code Playgroud) 我正在制作一个创建程序生成的地牢的游戏,我找到了一个使用位掩码来检索房间号和门类型等内容的例子.
在该示例中,他使用位掩码从每个图块的整数中提取细节.并且整数被这样分解
0xLLSDRRET
L - is the Level Number
S - Denotes a special tile(Like Stairs)
D - is if its a door, and what type(Door, Arch, Trapped)
R - Room number
E - Flags an entrance to a room
T - Names the type of tile(Floor, Cooridor, Blocked)
Run Code Online (Sandbox Code Playgroud)
在这里,他使用一个位掩码来获取,例如,房间号码,如:
int[][] map = new int[40][40]
int $ROOM_ID = 0x0000FF00;
System.out.println(map[x][y] & $ROOM_ID);
Run Code Online (Sandbox Code Playgroud)
现在有了这个,如果map [x] [y]是例如0x00001200,那么输出将是1200.这部分掩模我明白了.
但在源$ ROOM_ID是ACTUALLY 0x0000FFC0,我不明白C做什么,因为我尝试了不同的值,我似乎无法抓住C做的,例如
0x00001200 output-> 1200
0x00001210 output-> 1200
0x00001220 output-> 1200
0x00001230 output-> 1200 …Run Code Online (Sandbox Code Playgroud) 在CI有工作代码,但不知道为什么它工作,所以我开始重写它,所以我真的可以理解发生了什么.
到现在为止还挺好!我重写了,并且90%确定我理解现在发生的一切; 但问题是,我不知道如何将recv(databff)收到的数据块存储到我预先分配的缓冲区(htmlbff)中.
考虑下面的代码(请注意,我把它剥离了很多,所以它只包括基础知识,例如没有内存重新分配或泄漏保护等...):
#define BUFFERSIZE 4096
#define MAXDATASIZE 256
char *htmlbff, databff[MAXDATASIZE];
int c, i = BUFFERSIZE, q = 0;
if(!(htmlbff = malloc(i)))
{
printf("\nError! Memory allocation failed!");
return 0x00;
}
while((c = recv(sock, databff, MAXDATASIZE, 0)) > 0)
{
/*memory checks stripped out since they are irrelevent for this post*/
/*store data to the appropriate area in htmlbff*/
q += c;
}
Run Code Online (Sandbox Code Playgroud)
所以(如果我这样做,事情就像我认为的那样)c是当前数据块的大小,并且q是到目前为止接收的数据总量(每次循环重复时q递增c).目前我正在使用q …
我有一个动态饼图.在单击按钮时dataLables,显示的数据标签
为true时显示数据点,何时为false,应隐藏.
plotOptions: {
pie: {
allowPointSelect: false,
cursor: 'pointer',
dataLabels: {
enabled: false
}
}
}
Run Code Online (Sandbox Code Playgroud) 使用AutoHotKey,我有一个相当简单的循环脚本,我希望能够通过键的笔划来打破.我尝试了一些来自网站的不同代码,但似乎没有用.
这是代码:
#g::
Loop 20
{
MouseClick, left, 142, 542
Sleep, 1000
MouseClick, left, 138, 567
Sleep, 1500
MouseClick, left, 97, 538
Sleep, 1000
}
Run Code Online (Sandbox Code Playgroud) 我有一个 Python 列表,其中最多包含 50 个元素。为了让我轻松添加/减去元素,我更愿意垂直编码(每个列表元素在一个 Python 代码行上),或者导入一个单独的 CSV 文件?
list_of_elements = ['AA','BB','CC','DD','EE','FF', 'GG']
for i in list_of_elements:
more code...
Run Code Online (Sandbox Code Playgroud)
我更喜欢这样的代码:
list_of_elements =
['AA',
'BB',
'CC',
'DD',
'EE',
'FF',
'GG']
for i in list_of_elements:
more code...
Run Code Online (Sandbox Code Playgroud)
只是澄清一下,这不是关于打印,而是关于编码。我需要对 Python 代码中的所有列表元素有更好的视觉概览。