标签: null-pointer

可以使用0L初始化C++中的指针导致问题吗?

这个问题中,初始化器用于将指针设置为null.而不是使用值的00L.我已经读过,应该完全0使用空指针,因为精确的空指针表示是特定于实现的.

可以使用0L设置指针为null导致移植时出现问题吗?

c++ pointers null-pointer

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

C++:将隐式复制结构

我对 C++ 比较陌生,我想知道在以下情况下是否复制了结构:

struct foo {
  int i;
  std::vector<int> bar;
}

class Foobar {
  foo m_foo;

  void store(foo& f) {
    this->m_foo = f;
  }
}

void main() {
  Foobar foobar;
  {
    foo f;
    f.i = 1;
    f.bar.insert(2);
    foobar.store(f);
  }
  // will a copy of f still exist in foobar.m_foo, or am I storing a NULL-Pointer at this point?
}
Run Code Online (Sandbox Code Playgroud)

我问这个的原因是我最初是一个 .NET 开发人员,如果你将它们传递给一个函数(而类不是),那么在 .NET 结构中将被复制。我很确定如果 store 没有被声明为通过引用获取 f ,它会被复制,但我无法更改此代码。

编辑:更新了代码,因为我不知道这vector.insert会影响我的问题。在我的情况下,我将结构存储为类中的成员,而不是向量。所以我的问题真的是:会f被复制this->m_foo = f;吗?

c++ struct copy pass-by-reference null-pointer

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

ANDROID STUDIO无法访问fragment_main.xml中的对象

我有一个简单的Android应用程序.layout文件夹显示activity_main.xml文件和fragment_main.xml文件.在那个fragment.xml文件中,我放置了一个名为buttonTest的按钮.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.snapvest.thunderbird.app.MainActivity$PlaceholderFragment">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TEST"
        android:id="@+id/buttonTest"
        android:layout_gravity="center_horizontal" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在MainActivity.java文件中,我试图获得对该buttonTest的访问权限.

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }

    // Get access to the buttons
    final Button buttonTest = (Button)findViewById(R.id.buttonTest);
}
Run Code Online (Sandbox Code Playgroud)

它编译得很好.但是当我运行它时,buttonTest变量返回为空指针.为什么找不到buttonTest对象?

android button null-pointer

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

使用fopen()创建文件

我只是创建一个基本的文件处理程序.代码是这样的:

#include <stdio.h>
int main()
{
FILE *p;
p=fopen("D:\\TENLINES.TXT","r");
if(p==0)
{
    printf("Error",);

}

fclose(p);
}
Run Code Online (Sandbox Code Playgroud)

这是给错误,我无法创建文件尝试重新安装编译器和使用不同的位置和名称的文件,但没有成功.我使用的是Windows 7,编译器是Dev C++版本5

c file-handling dev-c++ null-pointer

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

null转换和默认对象之间有什么区别

我想知道这段代码有什么区别:

(Person)null
Run Code Online (Sandbox Code Playgroud)

而这段代码

default(Person)
Run Code Online (Sandbox Code Playgroud)

我认为它是一样的.它对我来说也是一样的.有什么细微差别?

c# null-pointer

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

不使用 * 操作符 hack-y 方式获取产品

有人可以帮助我理解以下逻辑如何解决获得a和 的产品b吗?

int getProd(int a, int b){
    return (uintptr_t)&((char (*) [a])0x0)[b];
}
Run Code Online (Sandbox Code Playgroud)

c pointer-arithmetic null-pointer

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

如何处理GetText()返回的tinyxml空指针

TiXmlElement *pElem;    
std::string StatusResponse;
pElem = hResponse.FirstChild("StatusResponse").Element();

if (pElem)
    StatusResponse = pElem->GetText();
Run Code Online (Sandbox Code Playgroud)

如果pElem有效但元素不包含文本,则pElem->GetText()返回NULL指针,从而导致异常.我该怎么处理?

谢谢.

c++ xml tinyxml null-pointer

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

C++删除指针上的运算符,指针不归零

我正在尝试用C++实现有向图.然而,我无法用我的RemoveEdge功能,之后我打电话的功能和它使用上的指针delete运算符,并设置指针nullptr,它不归零功能范围之外.

我不确定我是否已经清楚地说明了我的问题,但也许一些代码会有所帮助.

Graph.h

template<class TVertex, class TEdge, class TWeight>
class Graph
{
protected:
    std::list<Vertex<TVertex, TEdge, TWeight>*>* _Vertices;
    std::list<Edge<TVertex, TEdge, TWeight>*>* _Edges;
public:
    Graph();
    int TotalVertices();
    int TotalEdges();
    std::list<Vertex<TVertex, TEdge, TWeight>*>* Vertices();
    std::list<Edge<TVertex, TEdge, TWeight>*>* Edges();

    Vertex<TVertex, TEdge, TWeight>* FindVertex(const TVertex&);
    Vertex<TVertex, TEdge, TWeight>* InsertVertex(const TVertex&);
    void RemoveVertex(const TVertex&);

    Edge<TVertex, TEdge, TWeight>* FindEdge(const TEdge&);
    Edge<TVertex, TEdge, TWeight>* InsertEdge(const TVertex&, const TVertex&, const TEdge&, const TWeight&);
    void RemoveEdge(const TEdge&);
};
Run Code Online (Sandbox Code Playgroud)

Graph.FindEdge()

template<class TVertex, class TEdge, class TWeight>
Edge<TVertex, TEdge, TWeight>* …
Run Code Online (Sandbox Code Playgroud)

c++ pointers null-pointer delete-operator

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

我的游戏中出现NullPointerException,无法修复

我正在使用自定义像素引擎制作一个RPG,当我尝试运行它时,我只得到一个NullPointerException并且我知道原因,但是当我尝试初始化该变量时,我在另一个位置得到另一个并且我修复它并且现在它根本不会运行,我仍然得到一个NullPointerException.这是一个出错的类,控制台告诉我错误在屏幕上显示了screen.render();

import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import sprites.SpriteSheetLoader;

public class Game extends Canvas implements Runnable{

    private static final long serialVersionUID = 1L;

    public static final int HEIGHT = 120;
    public static final int WIDTH = 120;
    public static final int SCALE = 3;
    public static final String NAME = "TypicalRPG";
    public SpriteSheetLoader loader;

    private BufferedImage img = new BufferedImage(WIDTH * SCALE, HEIGHT * SCALE, BufferedImage.TYPE_INT_RGB); …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception null-pointer

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

为什么有时对字符串进行两次检查?

我看到了以下代码:

char *str;
// Some code
if (! str || ! *str)
    return str;
Run Code Online (Sandbox Code Playgroud)

为什么需要检查! *str?还if (! str)不够吗

c null-pointer

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