关于C#里面的结构体指针,在线等!!!

ji12332111 2009-08-17 09:20:15
这几天在用C#里面的指针与结构体,感觉是N复杂啊,下面是我写的一个程序:
        
unsafe public struct node
{
public int i,j;
public node* next;
}
unsafe public node* f = null, r = null; //用于记录存取节点的链接队列的首尾指针
unsafe public void insert (int k,int l)
{
node newNode=new node();
newNode.i = k;
newNode.j = l;
newNode.next = null;
if (f == null)
{
f = &newNode;
}
else
{
r->next = &newNode;
}
r = &newNode;
}
unsafe public void procNode(byte* ptr2)
{
Bitmap newBp;
insert(100, 100);
int temp=f->i; ///这句就是出问题的地方,本来应该是100的,但为啥得到的是0?!!!~~~
}

请大家给我看看啊,我现在很急,在线等!!!~~~
...全文
179 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ji12332111 2009-08-17
  • 打赏
  • 举报
回复
恩,感觉你说的很在理,我是刚学接触C#的,之前的编程经验也不足,希望你能赐教啊。你说用Marshal分配内存后强制转型成指针,能具体点么?[Quote=引用 5 楼 chrisak 的回复:]
汗...
看到指针思维跟着C/C++走了.node是一个struct也就是一个值类型.
也就意味着如果你使用new初始化node则它是在栈上分配的.而超出函
数作用域使用栈上的指针...囧.后果学过编程的应该都知道

如果你硬要使用指针的话...用Marshal分配内存后强制转型成指针吧.
[/Quote]
ji12332111 2009-08-17
  • 打赏
  • 举报
回复
在引用insert方法时是正常的,但是一旦引用完开始执行下一句时,i,j就有都变成了0,为什么呢?![Quote=引用 4 楼 chrisak 的回复:]
引用 3 楼 ji12332111 的回复:
我就是想用指针做啊,因为我们有一些东西必须搞懂这个!~引用 2 楼 dancingbit 的回复:
为什么要在C#中使用指针呢?

我看到指针就头痛,你这个是数据结构的练习题吧,不是非得用指针吧。

那应该用C++或C,在C#里没必要用指针偏要用指针那是闲得蛋疼.
另外你确认你的测试没问题吗?我试了N次确认是100(.net3.5 C#编译器).
[/Quote]
zjh222 2009-08-17
  • 打赏
  • 举报
回复
你要用指针就用C++嘛,为什么要用C#不伦不类的指针呀///
ChrisAK 2009-08-17
  • 打赏
  • 举报
回复
汗...
看到指针思维跟着C/C++走了.node是一个struct也就是一个值类型.
也就意味着如果你使用new初始化node则它是在栈上分配的.而超出函
数作用域使用栈上的指针...囧.后果学过编程的应该都知道

如果你硬要使用指针的话...用Marshal分配内存后强制转型成指针吧.
ChrisAK 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ji12332111 的回复:]
我就是想用指针做啊,因为我们有一些东西必须搞懂这个!~引用 2 楼 dancingbit 的回复:
为什么要在C#中使用指针呢?

我看到指针就头痛,你这个是数据结构的练习题吧,不是非得用指针吧。

[/Quote]那应该用C++或C,在C#里没必要用指针偏要用指针那是闲得蛋疼.
另外你确认你的测试没问题吗?我试了N次确认是100(.net3.5 C#编译器).
ji12332111 2009-08-17
  • 打赏
  • 举报
回复
我就是想用指针做啊,因为我们有一些东西必须搞懂这个!~[Quote=引用 2 楼 dancingbit 的回复:]
为什么要在C#中使用指针呢?

我看到指针就头痛,你这个是数据结构的练习题吧,不是非得用指针吧。
[/Quote]
dancingbit 2009-08-17
  • 打赏
  • 举报
回复
为什么要在C#中使用指针呢?

我看到指针就头痛,你这个是数据结构的练习题吧,不是非得用指针吧。
ji12332111 2009-08-17
  • 打赏
  • 举报
回复
为什么没有人回答我啊?!伤心!~~~~~~~~~~~~~~~~~~~~~~~~
哎,自己顶起吧!~

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧