这些可能是在c ++中声明数组(并为它们分配内存)的两种方法中的两种
1. int a[3];
2. int *b = new int[3];
Run Code Online (Sandbox Code Playgroud)
我想了解c ++如何以不同的方式处理这两者.
一个.在这两种情况下,我都可以使用以下语法访问数组:a[1]和b[1]
湾 当我尝试cout<< a和cout<< b,都打印相应数组的第一个元素的地址.
它看起来好像a和b都被视为指向数组的第一个元素的指针.
C.但奇怪的是,当我尝试这样做时cout << sizeof(a),sizeof(b)他们分别打印出不同的值 - 分别为4和12.
我不明白为什么在这种情况下sizeof(b),正在打印整个数组的大小.
c++ arrays pointers memory-management dynamic-memory-allocation
可能重复:
重新排序数组元素
在给定的元素数组中,如[a1,a2,a3,.. an,b1,b2,b3,.. bn,c1,c2,c3,... cn]编写程序将它们合并为[a1,b1, C1,A2,B2,C2,...一,BN,CN].我们必须在O(1)额外空间中进行.
样品测试用例:
Input #00:
{1,2,3,4,5,6,7,8,9,10,11,12}
Output #00:
{1,5,9,2,6,10,3,7,11,4,8,12}
Explanation:
Here as you can notice, the array is of the form
{a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4}
Run Code Online (Sandbox Code Playgroud)
编辑:我在亚马逊布局测试中得到它.已经尝试了很长时间了.PLease提供伪代码.我尝试的是为第二个元素e找到新的位置p(第一个已经在正确的位置),在p处插入e并对位置p处的旧元素重复相同的操作.但这是在一个周期结束.我尝试检测循环并将起始位置递增1.但即使这样也行不通.
EDIT2:
#include <iostream>
using namespace std;
int pos(int i, int n)
{
if(i<n)
{
return 3*i;
}
else if(i>=n && i<2*n)
{
return 3*(i-n) + 1;
}
else if(i>=2*n && i<3*n)
{
return 3*(i-2*n) + 2;
}
return -1;
}
void printn(int* A, int n)
{
for(int i=0;i<3*n;i++)
cout << A[i]<<";";
cout …Run Code Online (Sandbox Code Playgroud) 我正在设计一个网站。我想验证手机号码。用户在注册页面输入,通过向他的手机发送验证码。谁能给我指点我应该如何处理它??
我在某处读到 int 数据类型提供更好的性能(与 long 和 short 相比),无论操作系统如何,因为它的大小根据操作系统的字大小进行修改。其中 long 和 short 占用 4 和 2 个字节,这可能与 OS 的字大小匹配,也可能不匹配。任何人都可以对此做出很好的解释吗?
我试图用c ++实现一个简单的链表.我可能在某处犯了一个愚蠢的错误.通过这个我想学习C++中的类和指针.对于代码
#include <iostream>
using namespace std;
class node
{
public:
node* next;
int data;
node(int d);
void append(int d);
};
node::node(int d)
{
data = d;
next = NULL;
}
void node::append(int d)
{
node nw = node(d);
if(next==NULL)
next = &nw;
else
{
node *n = next;
while((*n).next!=NULL)
{
n = (*n).next;
}
(*n).next = &nw;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到81作为1旁边的节点.
int main()
{
node n = node(1);
n.append(3);
n.append(2);
n.append(81);
n = *(n.next);
cout<< n.data << '\n';
}
Run Code Online (Sandbox Code Playgroud)
请帮我弄清楚我在哪里弄错了.
http://docs.djangoproject.com/en/dev/intro/tutorial03/
我正在解决URLconfs的步骤,其中教程说明了如何解耦urls.py.在完全按照它说的做,我得到以下错误 -
error at /polls/1/
nothing to repeat
Request Method: GET
Request URL: http://localhost:8000/polls/1/
Exception Type: error
Exception Value:
nothing to repeat
Exception Location: C:\jython2.5.1\Lib\re.py in _compile, line 241
Python Executable: C:\jython2.5.1\jython.bat
Python Version: 2.5.1
Python Path: ['E:\\Programming\\Project\\django_app\\mysite', 'C:\\jython2.5.1\\Lib\\site-packages\\setuptools-0.6c11-py2.5.egg', 'C:\\jython2.5.1\\Lib', '__classpath__', '__pyclasspath__/', 'C:\\jython2.5.1\\Lib\\site-packages']
Server time: Mon, 12 Apr 2010 12:02:56 +0530
Run Code Online (Sandbox Code Playgroud) 使用以下查询:
SELECT SeatPref FROM (SELECT SeatPref, COUNT(CustID) AS seat_count FROM Booking
GROUP BY SeatPref) WHERE seat_count = max(seat_count)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
每个派生表都必须有自己的别名.
对于下表结构预订字段 - BookingID(主键),CustID,SeatPref
我想获得大多数CustID首选的SeatPref.
请帮忙.
我试图理解C++中的内存分配.我想到的一个问题是为什么分配内存是如此必要?如果我们在不分配内存的情况下使用内存会发生什么?另外,我很震惊地看到C++在内存分配方面是多么粗心.如果通过没有边界检查的数组提供对内存的自由访问.
int main()
{
int *p = new int[5];
p[1] = 3;
p[11118] = 9;
cout<<p[11118]<<'\n';
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作,输出9.
在什么情况下将值分配给未分配的内存位置会很危险?什么是潜在的不良影响?我正在访问的内存位置是否可能已分配给某个其他程序并为其分配值可能会导致该程序以非常意外的方式崩溃/表现?
我知道它非常天真的问题,但我无法理解以下代码的作用.
#include <malloc.h>
#define MAXROW 3
#define MAXCOL 4
int main(){
int (*p)[MAXCOL];
p = (int (*)[MAXCOL])malloc(MAXROW*sizeof(*p));
}
Run Code Online (Sandbox Code Playgroud)
请提供完整的说明,包括p的类型和大小.
It is just for learning purpose. I am not using this code in any real application.
Run Code Online (Sandbox Code Playgroud) c++ ×5
arrays ×4
mysql ×2
pointers ×2
sql ×2
algorithm ×1
class ×1
django ×1
django-urls ×1
int ×1
jython ×1
linked-list ×1
malloc ×1
memory ×1
memory-leaks ×1
mobile ×1
performance ×1
phone-number ×1
sms ×1
types ×1
url ×1
verification ×1